Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

point-cluster

Package Overview
Dependencies
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

point-cluster

Fast nd point clustering.

  • 3.1.8
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9.2K
increased by7.59%
Maintainers
2
Weekly downloads
 
Created
Source

point-cluster Build Status experimental

Point clustering for 2D spatial indexing. Incorporates optimized quad-tree data structure.

const cluster = require('point-cluster')

let ids = cluster(points)

// get point ids in the indicated range
let selectedIds = ids.range([10, 10, 20, 20])

// get levels of details: list of ids subranges for rendering purposes
let lod = ids.range([10, 10, 20, 20], { lod: true })

API

ids = cluster(points, options?)

Create index for the set of 2d points based on options.

  • points is an array of [x,y, x,y, ...] or [[x,y], [x,y], ...] coordinates.
  • ids is Uint32Array with point ids sorted by zoom levels, suitable for WebGL buffer, subranging or alike.
  • options
OptionDefaultDescription
bounds'auto'Data range, if different from points bounds, eg. in case of subdata.
depth256Max number of levels. Points below the indicated level are grouped into single level.
output'array'Output data array or data format. For available formats see dtype.

result = ids.range(box?, options?)

Get point ids from the indicated range.

  • box can be any rectangle object, eg. [l, t, r, b], see parse-rect.
  • options
OptionDefaultDescription
lodfalseMakes result a list of level details instead of ids, useful for obtaining subranges to render.
px0Min pixel size in data dimension (number or [width, height] couple) to search for, to ignore lower levels.
levelnullMax level to limit search.
let levels = ids.range([0,0, 100, 100], { lod: true, d: dataRange / canvas.width })

levels.forEach([from, to] => {
	// offset and count point to range in `ids` array
	render( ids.subarray( from, to ) )
})

License

© 2017 Dmitry Yv. MIT License

Development supported by plot.ly.

Keywords

FAQs

Package last updated on 29 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc